package org.eclipse.moquette.spi.impl;

import org.eclipse.moquette.proto.messages.AbstractMessage;
import org.eclipse.moquette.spi.IMatchingCondition;
import org.eclipse.moquette.spi.IMessagesStore;
import org.eclipse.moquette.spi.ISessionsStore;
import org.eclipse.moquette.spi.impl.events.PublishEvent;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;

import java.nio.ByteBuffer;
import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 * Created by alex on 15-6-5.
 */
public class MemoryStorageService implements IMessagesStore, ISessionsStore {

    @Override
    public void initStore() {

    }

    @Override
    public void storeRetained(String topic, ByteBuffer message, AbstractMessage.QOSType qos) {

    }

    @Override
    public Collection<StoredMessage> searchMatching(IMatchingCondition condition) {
        return null;
    }

    @Override
    public void storePublishForFuture(PublishEvent ev) {

    }

    @Override
    public List<PublishEvent> listMessagesInSession(String clientID) {
        return null;
    }

    @Override
    public void removeMessageInSession(String clientID, int packetID) {

    }

    @Override
    public void dropMessagesInSession(String clientID) {

    }

    @Override
    public void cleanInFlight(String clientID, int packetID) {

    }

    @Override
    public void addInFlight(PublishEvent evt, String clientID, int packetID) {

    }

    @Override
    public int nextPacketID(String clientID) {
        return 0;
    }

    @Override
    public void close() {

    }

    @Override
    public void persistQoS2Message(String publishKey, PublishEvent evt) {

    }

    @Override
    public void removeQoS2Message(String publishKey) {

    }

    @Override
    public PublishEvent retrieveQoS2Message(String publishKey) {
        return null;
    }

    @Override
    public void cleanRetained(String topic) {

    }

    @Override
    public void addNewSubscription(Subscription newSubscription, String clientID) {

    }

    @Override
    public void wipeSubscriptions(String sessionID) {

    }

    @Override
    public void updateSubscriptions(String clientID, Set<Subscription> subscriptions) {

    }

    @Override
    public List<Subscription> listAllSubscriptions() {
        return null;
    }

    @Override
    public boolean contains(String clientID) {
        return false;
    }
}
